1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, systems, and products for sharing a kernel of an operating system among logical partitions.
2. Description of Related Art
A thread is a unit of software execution on a multi-threaded computer. That is, a thread is an executable entity of work in a computer system. A thread can be viewed of as a separate stream of executable computer program instructions. On such a computer, software programs are executed in units of execution called ‘processes’ that include all the processor registers, code segment and offset registers, data segment and offset registers, stack segment and offset registers, flag registers, instruction pointer registers, program counters, and so on, needed for execution of software programs. For efficiency, ‘processes’ are organized further as threads, where each thread of a process individually possesses all the attributes needed for execution except that a thread shares memory among all the other threads of a process, thereby reducing the overhead of operating system switches from thread to thread (‘context switches’).
Two modes of multi-threading are discussed in this specification: simultaneous multi-threading (‘SMT’) and single-threaded (‘ST’) multi-threading. ST multi-threading is time-multiplexed multi-threading, that is, multi-threading by use of time slices or time quanta. In ST mode, both individual threads and virtual processors are assigned to a portion of a processor's computing capacity apportioned in segments of time, each of which is referred to as a ‘time slice’ or ‘time quantum.’
Some processors accept computer program instructions from more than one thread simultaneously, a feature referred to as ‘simultaneous multi-threading’ or ‘SMT.’ The idea behind SMT is to share the processor hardware on a chip among multiple threads of a multi-threaded workload. SMT is a technique that lets multiple independent threads issue instructions to a single physical processor in a single processing cycle. Traditional processor architectures issue instructions to a processor from only one thread at a time. An example of a processor that implements SMT as described here is IBM's Power5™ processor.
SMT is implemented on physical processors each of which is capable of accepting instructions from more than one thread of execution simultaneously. Also in SMT mode, both virtual processors and threads running on virtual processors may be apportioned through time slices. A thread of execution on a virtual processor in SMT mode may be viewed as running on a logical processor. A virtual processor running on a physical processor in SMT mode therefore may be viewed as supporting more than one logical processor. Whether a thread runs in ST mode or in SMT mode, a thread running on a logical processor is unaware of the logical or virtual nature of the processor and views it as a traditional processor.
Multiprocessing is implemented in computers that support multiple logical partitions in ST mode or SMT mode partition-by-partition. Each partition traditionally implements an entire separate operating system including a separate kernel. Even a single instance or image of a kernel consumes memory resources, and each additional copy of such an image consumes a multiple of memory resources. When the number of partitions and therefore the number of kernel images is large, memory consumption can become a limiting factor in system administration.